package com.yujiahao.bigdata.rdd.transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
    TODO RDD--GroupBy:将数据根据指定的规则增加标记，相同标记的数据放置在一起
      分组后数据类型为元组类型，其中的key就是分组的标记，其中的V就是相同标记的可迭代的集合
 */

object Spark_RDD_Pper_Transform_GroupBy {
  def main(args: Array[String]): Unit = {


    //TODO 1、获得连接
    val conf: SparkConf = new SparkConf().setAppName("WordCount").setMaster("local")
    val sc: SparkContext = new SparkContext(conf)
    // todo GroupBy:将数据根据指定的规则增加标记，相同标记的数据放置在一起

    val rdd: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4), 2)

    //测试一：
    val value: RDD[(Int, Iterable[Int])] = rdd.groupBy(num => num)
    //测试二：
    val groupRdd: RDD[(Int, Iterable[Int])] = rdd.groupBy(_ % 2)
    groupRdd.collect().foreach(println)
    value.collect().foreach(println)
    //TODO 2、关闭连接
    sc.stop()
  }
}